Methods for Post-Trade Allocation

ABSTRACT

A computer-implemented method for providing an allocation of a filled order made at a particular time, that involves receiving at least a price of a filled order made at a later time; generating a starting allocation across multiple managed accounts based at least in part on allocation factors of each of the multiple managed accounts; generating at least one additional allocation based at least in part on the starting allocation; determining a closest-fitting allocation according to a metric from amongst the starting allocation and the at least one additional allocation, the metric being based at least in part on the price of the filled order made at the later time and on a price of the filled order made at the particular time; and outputting the closest-fitting allocation.

FIELD OF THE INVENTION

The present invention relates in general to the post-trade allocation oftrades between multiple accounts, and specifically to a method fornonbiased allocation of trades.

BACKGROUND OF THE INVENTION

Exchanges do not allow for fractional contract sizes. As a result,allocation of block trades between different accounts requires roundingof positions, which can result in biased allocations. The recognition ofaverage prices can lessen the amount of bias to some degree. However,not all exchanges recognize average prices such as EUREX. Alternativeallocation procedures that have been suggested for exchanges that do notrecognize average prices can result in a biased allocation betweentrades. These alternative allocation procedures do not guaranteeconvergence towards the respective accounts' appropriate allocatedportion of the returns, regardless of the number of separately managedaccounts, even when the number of filled orders grows sufficientlylarge. One such methodology which fails to necessarily converge orguarantee a fair outcome is the “High Account High Price” methodology.Accordingly, there is a need for alternative allocation methods that aremore equitable and that do not suffer from these drawbacks.

SUMMARY OF THE INVENTION

The present invention provides a computerized method for reducing biasin allocation of trades. This method can be applied, without limitation,to trades over all exchanges. While this method is particularlyeffective in reducing, or eliminating (to the extent that roundingallows) bias in such exchanges as EUREX that do not recognize averageprices, it can also be applied for trades over exchanges that dorecognize average prices. The present method reduces bias by computing,in a processor of an electronic computing device (including withoutlimitation a desktop computer, a laptop, a server, or a mobile device,or other electronic systems and devices), and thereby ensuring, a tradeallocation that is “fair and optimal,” by which it is meant thatcumulative profit and loss are divided amongst accounts according totheir relative account allocation factors, to the maximum extent thatrounding permits. According to the method, gross trading returns foreach account will converge towards that account's appropriate allocatedportion of the returns, regardless of the number of separately managedaccounts, as the number of filled orders grows sufficiently large (i.e.,as will happen over a period such as a day, a week, or a subscriptionredemption period). Embodiments of the method further ensure that theseparately managed accounts have a net position which is: i) in eachcase greater than or equal to zero, or ii) in each case less than orequal to zero. That is, that they all have the same sign. Embodiments ofthe method guarantee other results, including i) guaranteeing that ifthe last, or any, filled order of the day flattens a portfolio, then allmanaged accounts get flattened as well; ii) guaranteeing that if thesystem was flat immediately prior to the last filled order of the day,that the last filled order of the day is allocated according to theaccounts'respective allocation factors (again, to the extent thatrounding permits); and iii) otherwise, that the allocation across allmanaged accounts is fair and optimal (again, to the extent that roundingpermits). The method computes, for purposes including, but not limitedto, ultimately communicating to the holders of the managed accountstheir respective profits and losses, trades across the managed accountswhich may be electronically represented, without limitation, as a vectorof integers of like sign.

BRIEF DESCRIPTION OF THE DRAWINGS

Further features and advantages of the invention may be understood byreviewing the following detailed description of the preferredembodiments of the invention taken together with the attached drawings,in which:

FIGS. 1-1C show a variety of embodiments of computer systems havingallocation computing parts, which computer systems may be used to carryout the method of the present invention;

FIG. 2 shows a further example computer system which may be used tocarry out is the methods of the present invention;

FIG. 3 shows yet another example computer system which may also be usedto carry out the methods of the present invention.

FIG. 4 shows a number of definitions, equations and formulas useful toone of ordinary skill in the art in carrying out the present inventionand in understanding the subject matter thereof.

FIG. 4A shows a flow diagram of an embodiment of the present invention.

FIGS. 5A-5C shows a flow diagram of an embodiment of the presentinvention involving the generation of a legitimate starting allocationand the determination of a closest-fitting allocation from amongst thislegitimate starting allocation and some number of perturbations of thislegitimate starting allocation;

FIG. 6 shows a method of determining a particular set of perturbationssuch as may be used in the method of FIGS. 5A-5C.

FIG. 7 shows exemplary pseudocode, which may be implemented in any of avariety of computer programming languages or computer applications, forgenerating an estimated allocation for each managed account;

FIG. 8 shows exemplary pseudocode, such as may be implemented in any ofa variety of computer programming languages or computer applications,for performing a “sanity check adjustment,” as described in thisspecification, and for generating an allocation considered to be“legitimate;”

FIG. 9A-9C show pseudocode, such as may be implemented in any of avariety of computer programming languages or computer applications, forgenerating a number of perturbations of, for example, a “legitimate”starting allocation, and determining the closest-fitting of theseperturbations according to a metric, wherein the operations representedby these figures are preferably performed in sequence;

FIG. 10A-10B show an exemplary table containing examples of filledorders for a portfolio for Bunds on Monday Apr. 18, 2011;

FIG. 11A-11B show a table containing allocations of the filled orders ofFIGS. 10A-10B across three managed accounts which would occur accordingto an embodiment of the present invention; and

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1 includes one allocation processing apparatus 100 with anallocation computing part 100 a and output part 100 b, as well as fiveother network devices 14-1 through 14-5 connected to a network 11. Thenetwork 11 can include one or more of a secure intranet or extranetlocal area network, a wide area network (WAN), any type of network thatallows secure access, or a combination thereof. Further, other securecommunications links (such as a virtual private network, a wirelesslink) may be used as well as the network connections. In addition, theallocation processing apparatus 100 may be connected to a network thatemploys TCP/IP (Transmission Control Protocol/Internet Protocol), butother protocols such as SNMP (Simple Network Management Protocol) andHTTP (Hypertext Transfer Protocol) can also be used. How devices canconnect to and communicate over the networks is well-known in the artand is discussed for example, in “How Networks Work”, by Frank J.Derfler, Jr. and Les Freed (Que Corporation 2000) and “How ComputersWork”, by Ron White, (Que Corporation 1999), the entire contents of eachof which are incorporated herein by reference.

It should be appreciated that such numbers and types of other networkdevices, terminals and apparatuses are arbitrary and are selected as anexample in order to facilitate discussion, and that the subject matterof this disclosure can be implemented in a system including one or moresystems, servers, apparatuses and terminals. Other devices, such asother scanners, printers and multi-function devices may also beconnected to a network, as is well known in the art. Further, thenetwork devices, allocation processing apparatus 100, allocationcomputing part 100 a and output part 100 b may be connected in adifferent network arrangement to that depicted in FIG. 1A.

The allocation processing apparatus 100 of the present invention may berealized by a computer program product including a computer-usable,non-transient medium (such as a disk storage apparatus) havinginstructions tangibly embodied therein that are executed by a computer.Thus, it should be understood that the allocation processing apparatus100 may be executed on a computer. The allocation processing apparatusmay be executed on a client terminal and/or network-connected device.The functionalities of the allocation computing part 100 a may beprovided by a software application such as a programmable application(e.g., Microsoft Excel), a dedicated financial software application,another application, an operating system (OS), firmware, operating on aterminal and/or network-connected device.

The allocation processing apparatus 100 may include a data storagesystem that can comprise one or more structural or functional parts thathave or support a storage function. For example, the data store can be,or can be a component of, a source of electronic data, such as adocument or financial data access apparatus, a backend server connectedto a document or financial data access apparatus, an e-mail server, afile server, a multi-function peripheral device (MFP or MFD), anapplication server, a computer, a network apparatus, or a terminal. Itshould be appreciated that the term “electronic document” or “electronicdata”, as used herein, in its broadest sense, can comprise any data thata user may wish to access, retrieve, review, or otherwise use.

Allocation processing apparatus 100 is not limited to a computer orserver, but can be manifested in any of various devices that can beconfigured to communicate over a network and/or the Internet, includingbut not limited to a personal, notebook or workstation computer, aterminal, a kiosk, a PDA (personal digital assistant), a tabletcomputing device, a smartphone, a server, a mobile phone or handset, oranother information terminal. Each device may be configured withsoftware allowing the device to communicate through networks with otherdevices. It should be understood that the allocation processingapparatus 100 may be the device that is actually performing, with itsoutput part 100 b outputting the output job (e.g. an e-mail, atransmission to separate financial software, a printer or automatedcall-in system, a display on a screen, or other electronic action makingbeneficial use of the calculated allocation), or the allocationprocessing apparatus may be connected via the network 11 to anotherdevice (such as MFD 14-3 or printer 14-4) that is performing the outputjob. Similarly, it should be understood that one or more of theprocessing functions described above as being performed by theprocessing part 100 a may instead be performed by another deviceconnected to the allocation processing apparatus 100 via the network 11,such as terminal 14-1, MFD 14-3 or server 14-5.

FIG. 1A shows one embodiment where the allocation computing part 203 ais included as part of a computer terminal 23 connected to exemplarynetwork 11. FIG. 1B shows another embodiment where the allocationcomputing part 204 a is included as part of a server 24 also connectedto an exemplary network 11. FIG. 1C shows a further embodiment where theallocation computing part 205 a is part of a stand-alone workstation 25connected to a network 26 which may take any of the variety of forms,which are readily known in the art. Again, FIGS. 1-1A are merelyindicative of the breadth of such arrangement of electronics, computersand computing devices, which may be used to carry out the inventivemethods disclosed herein and are not intended to limit those to whichthe invention may be applied.

FIG. 2 shows an exemplary arrangement of an allocation processingapparatus as a computer, for example, that can be configured throughsoftware to provide the allocation processing apparatus 100 illustratedin FIG. 1. As shown in FIG. 2, the allocation processing apparatus 600includes a controller (or central processing unit) 61 that communicateswith a number of other components, including memory or storage part 62,network interface 63, display 64 and keyboard 65, by way of a system bus69.

The allocation processing apparatus 600 may be a special-purpose device(such as including one or more application specific integrated circuitsor an appropriate network of conventional component circuits) or it maybe software-configured on a conventional personal computer or computerworkstation with sufficient memory, processing and communicationcapabilities to operate as a terminal and/or server, as will beappreciated to those skilled in the relevant arts.

In allocation processing apparatus 600, the controller 61 executesprogram code instructions that control device operations. The controller61, memory/storage 62, network interface 63, display 64 and keyboard 65are conventional, and therefore in order to avoid occluding theinventive aspects of this disclosure, such conventional aspects will notbe discussed in detail herein.

The allocation processing apparatus 600 includes the network interface63 for communications with other devices through a network. However, itshould be appreciated that the subject matter of this disclosure is notlimited to such configuration. For example, the allocation processingapparatus 600 may communicate with client and/or other terminals throughdirect connections and/or through a network to which some components arenot connected. As another example, the allocation processing apparatus600 need not be provided by a server that services terminals, but rathermay communicate with the devices on a peer basis, or in another fashion.

In one embodiment, allocation processing apparatus 100 may be manifestedas a multi-function device, which may be any apparatus (including amicroprocessor chip or a collection of devices having varying degrees ofintegration) that has the ability to perform two or morefunctionalities. The multi-function device may be a terminal or anycomputing device including but not limited to a personal, notebook orworkstation computer, a kiosk, a PDA (personal digital assistant), atablet computing device, a smartphone, a server, a mobile phone orhandset, or another information terminal.

An example of a configuration of a multi-function device is shownschematically in FIG. 3. Device 700 includes a central processing unit(CPU) 80, and various elements connected to the CPU 80 by an internalbus 82. The CPU 80 services multiple tasks while monitoring the state ofthe device 700. The elements connected to the CPU 80 include a scanningunit 70, a printing unit 71, an allocation computing part 72, a readonly memory (for example, ROM, PROM, EPROM, or EEPROM) 73, a randomaccess memory (RAM) 74, a hard disk drive (HDD) 75, portable media (forexample, floppy disk, optical disc, magnetic discs, magneto-opticaldiscs, or semiconductor memory cards) drive 76, a communicationinterface (I/F) 77, a modem unit 78, and a control panel 79.

Program code instructions for the device 700 can be stored on the readonly memory 73, on the HDD 75, or on portable media and read by theportable media drive 76, transferred to the RAM 74 and executed by theCPU 80 to carry out the instructions. These instructions can include theinstructions to the device to perform specified ones of its functionsand permit the device 700 to interact with other network devices, and tocontrol the operation panel 79 and the allocation computing part 72 ofthe device 700. The control panel 79 includes a display screen thatdisplays information allowing the user of the device 700 to operate thedevice 700, and optionally to display as output an allocation determinedby the allocation computing part 72. The display screen can be any ofvarious conventional displays (such as a liquid crystal display, aplasma display device, or a cathode ray tube display), but preferablyallows the operator to conveniently take advantage of the servicesprovided by the system. The display screen does not need to be integralwith, or embedded in, the operation panel 79, but may simply be coupledto the operation panel by either a wire or a wireless connection. Theoperation panel 79 may include keys for inputting information orrequesting various operations. Alternatively, the operation panel 79 andthe display screen may be operated by a keyboard, a mouse, a remotecontrol, touching the display screen, voice recognition, or eye-movementtracking, or a combination thereof. The device 700 is a multifunctiondevice (with scanner, printer and allocation computing) and in additioncan be utilized as a terminal to download documents or financialinformation from a network.

Additional aspects or components of the device 700 are conventional(unless otherwise discussed herein), and in the interest of clarity andbrevity are not discussed in detail herein. Such aspects and componentsare discussed, for example, in “How Computers Work,” by Ron White (QueCorporation 1999), and “How Networks Work,” by Frank J. Derfler, Jr. andLes Freed (Que Corporation 2000), the entire contents of each of whichare incorporated herein by reference.

FIG. 4 shows a number of definitions and formulas that will be used inthe description of the various methods of the invention. The inventionis intended to generate a fair allocation of the trades filled for aportfolio by a time t-1, amongst N managed accounts. N can be anycounting number. For example, in FIGS. 11A-11B, N is 3. Each of these Naccounts have an allocation factor α representing the portion of theportfolio optimally attributable to that account. For example, in FIGS.11A-11B the account allocation factors are 37.02%, 31.63%, and 31.35%.The portfolio, at any given time, has a net position, as do theindividual accounts, as shown for example in the 4 “net pos” columns ofFIGS. 11A-11B. Additionally, both the portfolio and the individualaccounts have a total cumulative realized profit and loss at any giventime, as shown for example in the “cum p&l” columns of FIGS. 11A-B. Thecumulative realized profit and loss may be calculated for any period(such as daily, weekly, or for each subscription/redemption period). Atany time, there is a quantity q of filled order, for either a buy or asell, for the portfolio. This can be seen for example in the “Buy” and“Sell” columns of FIGS. 10A-B or the leftmost “Buy” and “Sell” columnsof FIGS. 11A-B. One of ordinary skill in the art will understand that itis not necessary to separately track buys and sells within a computerprogram or process, such as with separate storage variables, but thatboth may be tracked for example with a single integer which may bepositive for buys and negative for sells. There is also a quantity offilled order for each of the N managed accounts at any given time, whichis that account's rounded allocation of the filled order of theportfolio as a whole. An important aspect of the present invention,which will be discussed in the specification in depth, is the manner inwhich it calculates this quantity for each of the individual managedaccounts. At any given time there is also a price of the filled order,which price is used in a number of computations according to embodimentsof the present invention.

Preferably, the calculation is made, at or after time t (the time of themost recent filled order) to determine a fair allocation of a filledorder made at time t-1, that is, the time of the filled order prior tothe most recent filled order. However, one of ordinary skill in the artwill understand that, while assigning times in this fashion andperforming the calculations at these times is preferable, the presentinvention is intended to include such trivial or nontrivialmodifications to the assignments of particular times as: i) assigningadditional times between filled orders (and perhaps performingadditional unnecessary calculations), at which times there iseffectively a filled order of 0 buys or 0 sells; or ii) combiningmultiple filled orders into a single transaction at some time (such asby adding up the buys or sells and using a price somewhere between,inclusively, the prices at the times of each of the multiple filledorders). Likewise, one of skill in the art will understand that it iswithin the scope of the present invention that computations ofallocations may take place in “real time,” that is, immediately at orfollowing time t, or that computations may take place at other times,such as by performing multiple “catch-up” allocation computations sincethe last allocation computation based on historical price and quantitydata. For example, these “catch-up” allocation computations may beperformed whenever a user or client or other authorized party requeststhat allocations for one or more managed accounts be revealed. Even when“real time” allocations are intended to be implemented, it will beunderstood that delays in determination of allocations may occur as aresult of delays in providing an allocation processing apparatus withcurrent price and quantity data or from computational delays in theprocessing apparatus itself, and that all such delays are still intendedto be within the scope of this invention.

An important goal of the invention, consistent with the aboveunderstanding, is to calculate, at some time concurrent with or aftertime t, a fair and optimal allocation and/or net position for each ofthe N managed accounts at time t-1. This is because the filled order attime t-1 can have recognized profit and loss, while the filled order attime t cannot.

A number of formulas are shown in FIG. 4, such as may permit one ofskill in the art to continuously determine current values of thesevariables from previous values of these variables. Additionally, FIG. 4shows formulas which will permit one of skill in the art to calculatethe “var” and “Q” values at particular times for particular portfoliosand particular allocations. These values are particular metrics whichmay be used according to the invention to choose amongst a known set ofpossible allocations to the various managed accounts. However, it willbe understood that other metrics may be used within the confines of theparticular methods set out in this specification, and that such othermetrics are within the scope of the invention.

FIG. 4A is a flow diagram giving an overview of the process of theinvention. It will be understood that at the beginning of performing themethod at a particular time t, the computer system or device performingthe method already has access to data such as the number of managedaccounts for the portfolio; the managed accounts' respective allocationfactors; and at least for a previous time t-1, the following additionalinformation: i) the portfolio net position, ii) the various account'snet positions, iii) the total cumulative (aggregated) realized profitand loss for the portfolio and the various managed accounts, and iv) theprice of the financial asset (or contract) at issue.

At step S401, this computer system or device electronically receives,preferably over a computer network having access to streaming financialdata or by manual input or by a scan of a document having such data,input data that includes at least the quantity of the filled order (andwhether the filled order is a buy or a sell) at time t as well as theprice of the filled order at this time t.

Then, at step S402, at least the price at time t from this input data isused in determining an allocation across the managed accounts. In anembodiment, the allocation is determined so as to necessarily be asclose to proportionally distributed, according to a particular metric (Qor var or a combination thereof being nonlimiting examples of suchmetrics) as the available rounding (such as integer rounding in someexchanges) allows. In some embodiments, the allocation is determined soas to necessarily be as close to proportionally distributed of anypossible allocation, while in other embodiments it is determined so asto necessarily be as close to proportionally distributed of anyallocation chosen from a set of two or more candidate allocations.Methods of generating candidate allocations, and in particular a“perturbation” method, are discussed in more detail later in thisspecification. Preferably, the allocation is determined so thatallocation and/or the net position across all managed accountsnecessarily have the same sign (e.g., if buys are considered as positivenumbers and sells as negative numbers, that all accounts are assigned anallocation and/or net position that is greater than or equal to zero, oralternately all accounts are assigned an allocation and/or net positionthat is less than or equal to zero). This prevents the managed accountsfrom buying or selling from one another.

Then, at step S403, the system or device generates an output job. Asdiscussed above, the output job may be any of the variety of electronicactions that put the allocation to a beneficial use. By way ofnon-limiting example, the output may be printed or displayed on a screenof a client or account manager.

FIGS. 5A-5C show another method according the present invention which isalso performed electronically with a computer system or device. Thebackground data accessible by the computer system or device is similarto that discussed in connection with FIG. 4. S501 is similar to S401,and the discussion of S401 is applicable to S501.

After S501, S502 generates a legitimate starting allocation of thefilled order amongst the various managed accounts. Preferably, thelegitimate starting allocation satisfies several constraints: (i) thesum of the absolute values of the allocated values across all of themanaged accounts should equal the absolute value of the filled order,and (ii) either all of the allocated values across the managed accountsshould be buys (e.g. greater than or equal to zero) or they should allbe sells (e.g. less than or equal to zero). Further, as will bediscussed below, the legitimate starting allocation should preferably begenerated so as to at least be “close” to an optimal allocation. Thatis, for the metric (e.g. Q) used, movements of a small number ofallocated contracts amongst a small number (e.g. four or fewer) ofmanaged accounts should be sufficient to transform the legitimatestarting allocation to an optimal allocation according to that metric(so far as rounding allows).

A particular example of a method for the generation of a legitimatestarting allocation as per S502 is shown in FIGS. 5B-5C. Pseudocode,such as will aid in the understanding of one of ordinary skill in theart of the portion of the method shown in FIG. 5B, and as will aid inimplementation of this portion of the method, is given in FIG. 7.Pseudocode, such as will aid in the understanding of one of ordinaryskill in the art of the portion of the method shown in FIG. 5C, and aswill aid in implementation of this portion of the method, is given inFIG. 8.

At step S502-1 the sign of the portfolio net position at time t-1 isstored. If the net position at this time is flat, then the allocationwill be flat as well (e.g., zeros for all accounts). Accordingly, therest of the process need not be performed and the determination of thesign becomes irrelevant. Alternately, the process may simply becontinued with either sign value being used. The sign value may bestored for example as a boolean value with true meaning positive/buy andfalse meaning negative/sell, or by such other methods as will be clearto one of ordinary skill in the art, such as an integer having a +1value for buys and −1 value for sells.

Then at step S502-2 the portfolio net position at time t-1 is multipliedby each account's account allocation factor and this value is rounded,such as to the nearest integer. The absolute value of this result istaken and stored for each account. However, this process may result inthe sum of the values for the managed accounts not equaling the value ofthe portfolio net position. Accordingly, a methodology is needed tocorrect this inequality. S502-3 through S502-7 provide such amethodology. However, in addition to this methodology any other methodof correcting this inequality that maintains the constraints of thelegitimate starting allocation discussed above is understood as beingwithin the scope of this invention.

S502-3 is a check as to whether the sum of the individual managedaccount allocations equals the portfolio net position at time t-1. Ifthis sum does equal the portfolio net position, then the correction iscomplete, and the computer or device performing the method then proceedsto step S502-8. Otherwise, it is necessary to increment or decrementsome account's allocation (as per steps S502-4 through S502-6) and checkagain (as per another iteration of this step S502-3).

S502-4 determines an account with a highest stored absolute value. Thismay be performed by checking the value of each account, by pre-sortingand then examining the highest value, or by other known methods fordetermining a maximum. If multiple accounts have the same value, thenany one of them may be chosen.

Then, S502-5 is a check as to whether the sum of the accounts' absolutevalues exceeds the absolute value of the portfolio net position at timet-1. However, it should be understood that that this calculation may bemade at other times, such as at or immediately before or after theperformance of step S502-3. If the check is positive, the accountdetermined at S502-4 has its stored value decremented (as per S502-6).Otherwise (where the sum of the accounts' absolute values is less thanthe absolute value of the portfolio net position), the accountdetermined at S502-4 has its value incremented (as per S502-7).

Once the check of S502-3 is satisfied, in S502-8 the computer or devicestores the difference of: i) the products of the stored absolute valuesand the stored sign (with the stored sign understood here as +1 ifpositive and −1 if negative) and ii) these account's net positions attime t-2. This result may be understood as an estimated allocationacross all of the managed accounts, and it may be stored as a vector ofintegers, or in any other known data structure as will be familiar toone of ordinary skill in the art.

To ensure that the estimated allocation has a value that is eithergreater than or equal to zero for all managed accounts or less than orequal to zero for all managed accounts, a further adjustment may benecessary. While all such adjustments will be understood as within thescope of the invention, FIG. 5C and its steps S502-9 through S502-17shows a particular method for making the adjustment. Such a process ofensuring that this constraint is met is referred to a “sanity checkadjustment” in this specification.

At step S502-9 a determination is made as to whether the filled order attime t-1 is to buy contracts (e.g. whether the change in the portfolionet position at time t-1 is considered as positive). If so, only stepsS502-10 through S502-13 are used in the rest of the adjustment.Otherwise, the filled order must have been to sell contracts (e.g., thechange in the portfolio net position at time t-1 must be negative), andonly steps S502-14 through S502-17 are used in the rest of theadjustment.

At S502-10/S502-11 a check is performed to see whether there are anynegative/positive allocations for at least one of the accounts. If not,then no (further) adjustment need be made, and the legitimate startingallocation has been generated, ending step S502. If there is such anallocation for at least one account, that account's allocation ischanged to zero at S502-11/S502-15. Then, at S502-12 and S502-13/S502-16and S502-17, one is continually subtracted from/added to the estimatedallocation of the account with the highest/lowest estimated allocation,until the sum of the estimated allocations equals the quantity of filledorder at time t-1. Then, the check at S502-10/S502-14 is again performedto see if any other accounts have a negative/positive estimatedallocation. Once this process is complete, the legitimate allocation ofstep S502 has been generated.

Referring again to FIG. 5A, S503 calculates a Q value for the legitimatestarting allocation generated at step S502, according to the formulasand definitions given in FIG. 4. However, it should be understood thatother metrics could instead be used. By way of a simple non-limitingexample, the exponent in the formula for calculating Q could be changedto another value other than 2, such as 1, 1.5, or 3 (with absolute valuetaken) to arrive at a formula for calculating some other metric (i.e.Q′). This calculated value is stored, and will be referred to in thisspecification as Qprevious. Qprevious is a variable that will holdwhatever the closest-fitting, that is, lowest, value of Q is that hasbeen found by the method. The legitimate starting allocation is storedboth as Abeginning (where this particular value will remain through theperformance of the method) and as Abest, which is a variable holding theclosest-fitting allocation that has been found so far (that is, theallocation having the closest-fitting calculated value according to thecorresponding metric).

At S504, a check is performed as to whether there are any additionalperturbations of the legitimate starting allocation left to examine thathave not yet been examined. Perturbations are variations of thelegitimate starting allocation that maintain the sum of the allocatedvalues across the managed accounts (which values it will be recalledequal the portfolio net position at time t-1), but result in certainaccounts having a relatively larger allocation and certain accountshaving a relatively smaller allocation. A particular methodology forgenerating the perturbations is shown at FIG. 6 and the accompanyingdiscussion below. However, at this point in the discussion, it sufficesto say that all of these perturbations will be examined to determine theone that is most optimal according to the metric.

Assuming that not all perturbations have yet been generated andexamined, then, at S505 one such perturbation is generated. The “sanitycheck adjustment” of FIG. 5C is performed on this perturbation, to makesure that it does not violate the constraint that the allocations acrossall accounts should all be non-negative or all be non-positive. A Qvalue (or whatever other metric is in use) is then calculated for this(possibly adjusted) perturbation, which will be referred to as Qnew.

At S506, a check is performed to see if Qnew is better than, that is,less than, Qprevious. If so, the perturbation is preferable to thelegitimate starting allocation or any previously examined perturbation.Also, even if Qnew is the same as Qprevious, if a tiebreaker conditionis met, (by way of non-limiting example, if the var value that wouldresult from the current perturbation, as compared to that which wouldresult from the previously found closest-fitting allocation Abest, islower) then the perturbation may likewise be considered preferable.

If the new perturbation is considered preferable, then this isregistered in the computer or device, as per S507 where Qprevious is setto equal the Qnew value, and Abest is set to the new and preferableperturbation. It will be understood that FIG. 5 a discloses that eachpotential perturbation is generated and scored, as per steps S505-S506.At step S508, a determined most preferable allocation (chosen fromamongst the legitimate starting allocation and all of the perturbationsthereof) Abest is electronically put to some beneficial use, asdiscussed above in connection with outputting and/or generating anoutput job.

FIG. 6 shows a method of generating perturbations, that is, a number ofpossible allocations which may be examined to determine whether they arebetter than the legitimate starting allocation and better than the otherperturbations. It should be noted, as discussed above, that a “sanitycheck adjustment” is preferably performed on the generated perturbationsto ensure that they will meet the all non-negative/all non-positiveconstraint. In at least one embodiment of the present invention, asshown, perturbations are generated from particular pairs, triplets, andquadruplets, depending upon the number of managed accounts. As shown insteps S601-S602, a set of pairs is used to generate perturbations aslong as there are at least two accounts. In particular, the set of pairs[+1 −1] [+2 −2] [+3 −3] are used to generate perturbations. The mannerof doing for each of these pairs [x y], is, for all pairs of uniqueaccounts a1 and a2, take the legitimate starting allocation (which forexample in S503 is stored as Abeginning) and add x to a1's value in thatallocation and add y to a2's value in that allocation. As a simpleexample, if the legitimate starting allocation amongst two accounts is[4 8], and the suggested set of pairs [+1 −1] [+2 −2] [+3 −3] are used,the following perturbations will be generated: [5 7] [6 6] [7 5] [3 9][2 10] and [1 11].

As shown in S603 and S604, in addition to the pairs used to generateperturbations, a set of triplets are also used to generate perturbationswhen there are at least three managed accounts. This may be done in thesame manner. [+2 −1 −1] [−2 +1 +1] [+3 −2 −1] [−3 +2 +1] are a suggestedset of triplets.

As shown in S605 and S606, in addition to the pairs and triplets used togenerate allocations, a set of quadruplets are also used to generateperturbations when there are at least four managed accounts. This may bedone in the same manner. [+1 −1 +1 −1] is a suggested set ofquadruplets.

The use of these pairs, triplets and quadruplets to generateperturbations has an advantage over a brute force approach of checkingall possible allocations of the filled order, in that the time forgenerating and examining these perturbations is orders of magnitude lessthan would be required for a brute force approach. The method of FIG. 6may be understood as a grid search in a narrow range for each filledorder. Even as the number of managed accounts N grows arbitrarily large,the total number of perturbations examined is only Θ(N̂4). It should benoted that preferably, where N is at least 3, both the set of pairs andthe set of triplets are used to generate perturbations, and where N isat least 4, all of the set of pairs and the set of triplets and the setof quadruplets are used to generate perturbations.

Pseudocode, such as will aid in the understanding of one of ordinaryskill in the art of the portions of the method shown in FIG. 6 and inS504-S507 of FIG. 5, and as will aid in implementation of this portionof the method, is given in FIGS. 9A-9C. It will be understood that withrespect to the disclosure of each of the pseudocode figures, one ofordinary skill in the art will be able to implement such pseudocodeaccording to the spirit of the invention in a variety of ways in any ofa variety of different programming languages or ‘software applications,and that such pseudocode is merely exemplary, and that a large number ofequivalent computerized implementation methods are all within the scopeof applicants’ invention.

According to one embodiment of the present invention, acomputer-implemented method is provided for providing an allocation of afilled order made at a time t-1, involving: receiving at least a priceof a filled order made at a time t; generating a starting allocationacross multiple managed accounts based at least in part on allocationfactors of each of the multiple managed accounts; generating at leastone additional allocation based at least in part on the startingallocation; determining a closest-fitting allocation according to ametric from amongst the starting allocation and the at least oneadditional allocation, the metric being based at least in part on theprice of the filled order made at the time t and on a price of thefilled order made at the time t-1; and outputting the closest-fittingallocation.

In a further embodiment, the multiple managed accounts comprise at leasttwo accounts; and the at least one additional allocation include, foreach member of a set of non-zero integer pairs, a perturbation of thestarting allocation for each unique pair of managed accounts amongst themultiple managed accounts that is based at least in part on adding toallocated integer values of the starting allocation associated with bothmembers of the unique pair, an integer value associated with acorresponding non-zero integer value of the member of the set ofnon-zero integer pairs. The set of non-zero integer pairs may include[+1 −1], [+2 −2], and [+3 −3].

In yet a further embodiment, the multiple managed accounts include atleast three accounts; and the at least one additional allocation furtherincludes, for each member of a set of non-zero integer triplets, aperturbation of the starting allocation for each unique triplet ofmanaged accounts amongst the multiple managed accounts that is based atleast in part on adding to allocated integer values of the startingallocation associated with all three members of the unique triplet, aninteger value associated with a corresponding non-zero integer value ofthe member of the set of non-zero integer triplets. The set of non-zerointeger triplets may include [+2 −1 −1], [−2 +1 +1], [+3 −2 −1] and [−3+2 +1].

In an additional embodiment, the multiple managed accounts include atleast four accounts; and the at least one additional allocation furtherincludes, for each member of a set of non-zero integer quadruplets, aperturbation of the starting allocation for each unique quadruplet ofmanaged accounts amongst the multiple managed accounts that is based atleast in part on adding to allocated integer values of the startingallocation associated with all four members of the unique quadruplet, aninteger value associated with a corresponding non-zero integer value ofthe member of the set of non-zero integer quadruplets. The set ofnon-zero integer quadruplets may include [+1 −1 +1 −1]. The set ofnon-zero integer pairs may include [+1 −1], [+2 −2], and [+3 −3] and theset of non-zero integer triplets may include [+2 −1 −1], [−2 +1 +1], [+3−2 −1] and [−3 +2 +1]. These three sets optionally may include nofurther members.

In yet another further embodiment, the at least one additionalallocation may include Θ(N̂4) additional allocations, with N beingdefined in FIG. 4 as the number of managed accounts and this boundapplying as N grows.

In another embodiment, the generating of the at least one additionalallocation is further based on a determination of whether theperturbation contains a negative allocation when the filled order madeat the time t-1 is to buy contracts or a positive allocation when thefilled order made at the time t-1 is to sell contracts, and, if so, anadjustment is made to the perturbation that ensures that the at leastone additional allocation does not contain a negative allocation whenthe filled order made at the time t-1 is to buy contracts or a positiveallocation when the filled order made at the time t-1 is to sellcontracts. The adjustment may include changing the negative allocationto zero and iteratively subtracting one from an allocation of an accountwith a highest allocation until a sum of allocations across all of themultiple managed accounts equals a quantity of the filled order made atthe time t-1. The adjustment may include changing the positiveallocation to zero and iteratively adding one to an allocation of anaccount with a lowest allocation until a sum of allocations across allof the multiple managed accounts equals a quantity of the filled ordermade at the time t-1.

In one more embodiment, the metric is based on closeness of the startingallocation and the at least one additional allocation to a desireddivision of profit and loss according to the allocation factors of eachof the multiple managed accounts; and the closest-fitting allocation isguaranteed to be preferable or equivalent to any possible allocation ofthe filled order made at a time t-1 according to the metric. The metricmay be the minimization of Q. The metric may further apply a preference,in the event that allocations have equal Q values, to pick an allocationthat has a smallest var(NPt) amongst the allocations having equal Qvalues.

In yet another embodiment, generating the starting allocation mayinclude the steps of: rounding to the nearest integer, for each of themultiple managed accounts, a product of the managed account's allocationfactor and a portfolio net position at time t-1; determining whether thesum of absolute values of the rounded products equals the absolute valueof the portfolio net position at time t-1; and if the sum of absolutevalues of the rounded products does not equal the absolute value of theportfolio net position at time t-1, performing an adjustment to therounded products such that the sum of absolute values of the roundedproducts equals the absolute value of the portfolio net position at timet-1. The adjustment may include iteratively performing, until the sum ofthe absolute values of the rounded products equals the absolute value ofthe portfolio net position at time t-1, the steps of: determining aparticular managed account whose associated rounded product has amaximum absolute value; determining whether the sum of the absolutevalues of the rounded products is greater than the absolute value of theportfolio net position at time t-1; if so, incrementing or decrementingthe associated rounded product of the particular managed account suchthat its absolute value is decreased by one; and otherwise, incrementingor decrementing the associated rounded product of the particular managedaccount such that its absolute value is increased by one. The startingallocation, for each of the multiple managed accounts, may equal thedifference between an absolute value of an associated rounded product ofthat account multiplied by a sign of the portfolio net position at timet-1 and that account's net position at time t-2.

In one more embodiment, a computer-implemented method is provided forproviding an allocation of a filled order made at a time t-1, including:receiving, in an allocation processing apparatus, at least a price of afilled order made at a time t; generating, in the allocation processingapparatus, a starting allocation across multiple managed accounts basedat least in part on allocation factors of each of the multiple managedaccounts; generating, in the allocation processing apparatus, at leastone additional allocation based at least in part on the startingallocation; determining, in the allocation processing apparatus, aclosest-fitting allocation according to a metric from amongst thestarting allocation and the at least one additional allocation, themetric being based at least in part on the price of the filled ordermade at the time t and on a price of the filled order made at the timet-1; and outputting, using an output part of the allocation processingapparatus, the closest-fitting allocation. It will be understood thatall of the above-mentioned embodiments are compatible with thisembodiment and such combinations provide a part of the invention.

It will be further understood that each of the steps in each of thepresent methods is preferably implemented on a digital computer. WhileApplicants' invention has been particularly shown and described asreferenced to the embodiments thereof, those skilled in the relevant artwill understand that changes in form and detail may be made to theseembodiments without departing from the spirit and scope of theinvention.

1. A computer-implemented method for providing an allocation of a filledorder made at a time t-1, comprising: receiving at least a price of afilled order made at a time t; generating a starting allocation acrossmultiple managed accounts based at least in part on allocation factorsof each of the multiple managed accounts; generating at least oneadditional allocation based at least in part on the starting allocation;determining a closest-fitting allocation according to a metric fromamongst the starting allocation and the at least one additionalallocation, the metric being based at least in part on the price of thefilled order made at the time t and on a price of the filled order madeat the time t-1; and outputting the closest-fitting allocation.
 2. Themethod of claim 1, wherein: the multiple managed accounts comprise atleast two accounts; and the at least one additional allocationcomprises, for each member of a set of non-zero integer pairs, aperturbation of the starting allocation for each unique pair of managedaccounts amongst the multiple managed accounts that is based at least inpart on adding to allocated integer values of the starting allocationassociated with both members of the unique pair, an integer valueassociated with a corresponding non-zero integer value of the member ofthe set of non-zero integer pairs.
 3. The method of claim 2, wherein:the set of non-zero integer pairs comprises [+1 −1], [+2 −2], and [+3−3].
 4. The method of claim 2, wherein: the multiple managed accountscomprise at least three accounts; and the at least one additionalallocation further comprises, for each member of a set of non-zerointeger triplets, a perturbation of the starting allocation for eachunique triplet of managed accounts amongst the multiple managed accountsthat is based at least in part on adding to allocated integer values ofthe starting allocation associated with all three members of the uniquetriplet, an integer value associated with a corresponding non-zerointeger value of the member of the set of non-zero integer triplets. 5.The method of claim 4, wherein: the set of non-zero integer tripletscomprises [+2 −1 −1], [−2 +1 +1], [+3 −2 −1] and [−3 +2 +1].
 6. Themethod of claim 4, wherein: the multiple managed accounts comprise atleast four accounts; and the at least one additional allocation furthercomprises, for each member of a set of non-zero integer quadruplets, aperturbation of the starting allocation for each unique quadruplet ofmanaged accounts amongst the multiple managed accounts that is based atleast in part on adding to allocated integer values of the startingallocation associated with all four members of the unique quadruplet, aninteger value associated with a corresponding non-zero integer value ofthe member of the set of non-zero integer quadruplets.
 7. The method ofclaim 6, wherein: the set of non-zero integer quadruplets comprises [+1−1 +1 −1];
 8. The method of claim 7, wherein: the set of non-zerointeger pairs comprises [+1 −1], [+2 −2], and [+3 −3]; and the set ofnon-zero integer triplets comprises [+2 −1 −1], [−2 +1 +1], [+3 −2 −1]and [−3 +2 +1].
 9. The method of claim 8, wherein: the set of non-zerointeger pairs, the set of non-zero integer triplets and the set ofnon-zero integer quadruplets each comprise no further members.
 10. Themethod of claim 2, wherein: the generating of the at least oneadditional allocation is further based on a determination of whether theperturbation contains a negative allocation when the filled order madeat the time t-1 is to buy contracts or a positive allocation when thefilled order made at the time t-1 is to sell contracts, and, if so, anadjustment is made to the perturbation that ensures that the at leastone additional allocation does not contain a negative allocation whenthe filled order made at the time t-1 is to buy contracts or a positiveallocation when the filled order made at the time t-1 is to sellcontracts.
 11. The method of claim 10, wherein: the adjustment compriseschanging the negative allocation to zero and iteratively subtracting onefrom an allocation of an account with a highest allocation until a sumof allocations across all of the multiple managed accounts equals aquantity of the filled order made at the time t-1.
 12. The method ofclaim 10, wherein: the adjustment comprises changing the positiveallocation to zero and iteratively adding one to an allocation of anaccount with a lowest allocation until a sum of allocations across allof the multiple managed accounts equals a quantity of the filled ordermade at the time t-1.
 13. The method of claim 1, wherein: the metric isbased on closeness of the starting allocation and the at least oneadditional allocation to a desired division of profit and loss accordingto the allocation factors of each of the multiple managed accounts; andthe closest-fitting allocation is guaranteed to be preferable orequivalent to any possible allocation of the filled order made at a timet-1 according to the metric.
 14. The method of claim 13, wherein: themetric is minimization of Q.
 15. The method of claim 14, wherein: themetric applies a preference, in the event that allocations have equal Qvalues, to pick an allocation that has a smallest var(NPt) amongst theallocations having equal Q values.
 16. The method of claim 1, wherein:The at least one additional allocation comprises Θ(N̂4) additionalallocations.
 17. The method of claim 1, wherein: generating the startingallocation comprises the steps of: rounding to the nearest integer, foreach of the multiple managed accounts, a product of the managedaccount's allocation factor and a portfolio net position at time t-1;determining whether the sum of absolute values of the rounded productsequals the absolute value of the portfolio net position at time t-1; andif the sum of absolute values of the rounded products does not equal theabsolute value of the portfolio net position at time 1-1, performing anadjustment to the rounded products such that the sum of absolute valuesof the rounded products equals the absolute value of the portfolio netposition at time t-1.
 18. The method of claim 17, wherein: theadjustment comprises iteratively performing, until the sum of theabsolute values of the rounded products equals the absolute value of theportfolio net position at time t-1, the steps of: determining aparticular managed account whose associated rounded product has amaximum absolute value; determining whether the sum of the absolutevalues of the rounded products is greater than the absolute value of theportfolio net position at time t-1; if so, incrementing or decrementingthe associated rounded product of the particular managed account suchthat its absolute value is decreased by one; and otherwise, incrementingor decrementing the associated rounded product of the particular managedaccount such that its absolute value is increased by one.
 19. The methodof claim 18, wherein: the starting allocation, for each of the multiplemanaged accounts, equals the difference between an absolute value of anassociated rounded product of that account multiplied by a sign of theportfolio net position at time t-1 and that account's net position attime t-2.
 20. A computer-implemented method for providing an allocationof a filled order made at a time t-1, comprising: receiving, in anallocation processing apparatus, at least a price of a filled order madeat a time t; generating, in the allocation processing apparatus, astarting allocation across multiple managed accounts based at least inpart on allocation factors of each of the multiple managed accounts;generating, in the allocation processing apparatus, at least oneadditional allocation based at least in part on the starting allocation;determining, in the allocation processing apparatus, a closest-fittingallocation according to a metric from amongst the starting allocationand the at least one additional allocation, the metric being based atleast in part on the price of the filled order made at the time t and ona price of the filled order made at the time t-1; and outputting, usingan output part of the allocation processing apparatus, theclosest-fitting allocation.